var admin_module_apis = {
	create_module: "http://api.fangchepingtai.com/fangchebbs/admin/module/create",
	updata_module: "http://api.fangchepingtai.com/fangchebbs/admin/module/update",
	listByPage: "http://api.fangchepingtai.com/fangchebbs/admin/module/listbypage",
	moduleDetail: "http://api.fangchepingtai.com/fangchebbs/admin/module/detail/",
	deleteModule: "http://api.fangchepingtai.com/fangchebbs/admin/module/delete/",
	countModule: "http://api.fangchepingtai.com/fangchebbs/admin/module/count",
	postList: "http://api.fangchepingtai.com/fangchebbs/admin/post/listbymodule",
	postCount: "http://api.fangchepingtai.com/fangchebbs/admin/post/count",
	postDelete: "http://api.fangchepingtai.com/fangchebbs/admin/post/delete/"
};
(function() {
	// 页面涉及参数
	var page, num, _module, _m_page;

	// 创建新的版块
	function createModule(data) {
		coAjax.post(admin_module_apis.create_module, data, function(result) {
			console.log(result);
			alert("success", "创建成功");
			App.set("$Cache.admin.module.new", "");
			// App.unshift("$Cache.admin.module.module_list", result);
			getModule(page, num);
		}, function(err, errMsg, errCode) {
			console.log(err, errMsg);
		});
	};
	App.set("$Event.admin.module.create_new", function() {
		var data = App.get("$Cache.admin.module.new") || {};
		if (!data.name) {
			alert("warn", "请填写版块名称");
			return;
		};
		data.preview_img ? createModule(data) : myConfirm("不上传新版块图片吗？", function() {
			createModule(data);
		}, function() {
			return;
		});
	});
	require(['/js/tools/image_upload.js'], function(upload) {
		// 上传版块图片
		App.set("$Event.admin.module.upload_module_preview", function() {
			var file = this.files[0];
			// var dtd = new $.Deferred();
			if (file) {
				upload(file, function(path) {
					App.set("$Cache.admin.module.new.preview_img", path);
				});
			};
		});
	});

	// 开启关闭修改
	App.set("$Event.admin.module.edit_module", function(e, vm) {
		vm.set("isedit", !vm.get("isedit"));
	});

	// 删除版块
	App.set("$Event.admin.module.delete_module", function(e, vm) {
		myConfirm("确定要删除此版块吗？删除版块将删除板块下所有话题", function() {
			coAjax.delete(admin_module_apis.deleteModule + vm.get("_id"), function(result) {
				alert("success", "删除成功");
				vm.remove();
			}, function(err, errMsg, errCode) {
				console.log(err);
				console.log(errMsg);
			});
		});
	});

	// 编辑版块提交
	App.set("$Event.admin.module.submit_edit", function(e, vm) {
		var data = vm.get();
		delete data.isedit;
		coAjax.put(admin_module_apis.updata_module, data, function(result) {
			// console.log(result);
			vm.set("$This", result);
			vm.set("isedit", false);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		});
	});

	// 获取对应页面的版块列表
	function getModule(page, num) {
		coAjax.get(admin_module_apis.listByPage, {
			page: page,
			num: num
		}, function(result) {
			App.set("$Cache.admin.module.module_list", result);
			// console.log(result);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		});
	};

	// 获取对应版块的话题列表
	function getPostList(_m_page, num, _module) {
		coAjax.get(admin_module_apis.postList, {
			page: _m_page,
			num: num,
			_module: _module
		}, function(result) {
			console.log(result);
			App.set("$Cache.admin.module.post_list", result);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		});
	};

	// 版块跳转
	App.set("$Event.admin.module.changeModule", function(e, vm) {
		Path.jump("/admin/module.html?num=" + num + "&page=" + page + "&_module=" + vm.get("_id"));
	});

	// 删除话题
	App.set("$Event.admin.module.delete_post", function(e, vm) {
		myConfirm("确定删除此话题吗？删除后不可恢复", function() {
			coAjax.delete(admin_module_apis.postDelete + vm.get("_id"), function(result) {
				console.log(result);
				alert("success", "删除成功");
				vm.remove();
			}, function(err, errMsg, errCode) {
				console.log(err);
				console.log(errMsg);
			});
		});
	});

	// 修改话题
	App.set("$Event.admin.module.edit_post", function(e, vm) {
		Path.jump("/admin/post.html?_id=" + vm.get("_id"));
	});

	// 版块翻页
	App.set("$Event.admin.module.preModulePage", function() {
		jumpPage = App.get("$Cache.admin.module.currentPage") || 0;
		jumpPage > 0 ? jumpPage-- : jumpPage < 0 ? jumpPage = 0 : jumpPage;
		Path.jump("/admin/module.html?page=" + jumpPage);
	});
	App.set("$Event.admin.module.nextModulePage", function() {
		jumpPage = App.get("$Cache.admin.module.currentPage");
		(jumpPage < App.get("$Cache.admin.module.pages").length - 1) ? jumpPage++ : jumpPage;
		Path.jump("/admin/module.html?page=" + jumpPage);
	});

	// 话题翻页
	App.set("$Event.admin.module.prePostPage", function() {
		jumpPage = App.get("$Cache.admin.module.current_m_page") || 0;
		jumpPage > 0 ? jumpPage-- : jumpPage < 0 ? jumpPage = 0 : jumpPage;
		Path.jump("/admin/module.html?page=" + App.get("$Cache.admin.module.currentPage") + "&_m_page=" + jumpPage);
	});
	App.set("$Event.admin.module.nextPostPage", function() {
		jumpPage = App.get("$Cache.admin.module.current_m_page");
		(jumpPage < App.get("$Cache.admin.module.pages").length - 1) ? jumpPage++ : jumpPage;
		Path.jump("/admin/module.html?page=" + App.get("$Cache.admin.module.currentPage") + "&_m_page=" + jumpPage);
	});

	Path.on("/admin/__basename__.html", function(_current_location) {
		var qs = _current_location.query;
		page = qs.get("page") || 0;
		App.set("$Cache.admin.module.currentPage", page);
		num = qs.get("num") || 15;
		App.set("$Cache.admin.module.currentPageNum", num);
		_m_page = qs.get("_m_page") || 0;
		App.set("$Cache.admin.module.current_m_page", _m_page);
		_module = qs.get("_module");
		App.set("$Cache.admin.module.currentModule", _module);
		getModule(page, num);
		getPostList(_m_page, num, _module);
		// 计算分页总数
		coAjax.get(admin_module_apis.countModule, function(result) {
			var pages = [];
			pages.length = result ? Math.ceil(result / num) || 1 : 0;
			App.set("$Cache.admin.module.pages", pages);
			// console.log(result);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		});
		// 计算话题分页总数
		coAjax.get(admin_module_apis.postCount, {
			_module: _module
		}, function(result) {
			var pages = [];
			// console.log(result);
			pages.length = Math.ceil(result / num);
			App.set("$Cache.admin.module.postPages", pages);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		});

		// 获取当前所在版块详情
		_module ? coAjax.get(admin_module_apis.moduleDetail + _module, function(result) {
			console.log(result);
			App.set("$Cache.admin.module.selectedModule", result);
		}, function(err, errMsg, errCode) {
			console.log(err);
			console.log(errMsg);
		}) : false;
	});
}());